home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b9.d64
/
c64symb.pal
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-28
|
25KB
|
858 lines
10 ;
20 ;
30 ; +------------------------------------------------+
40 ; ! !
50 ; ! !
60 ; ! ****** COMMODORE 64 COMAL-80 ****** !
70 ; ! !
80 ; ! (C) COPYRIGHT UNICOMAL APS 1983, 1984 !
90 ; ! !
100 ; ! !
110 ; ! C64SYMB FOR COMMODORE 64 COMAL-80 REV. 2.01 !
120 ; ! !
130 ; ! !
140 ; +------------------------------------------------+
150 ;
160 ;
170 ;
180 TRUE =1
190 FALSE =0
200 ;
210 PAGE0 =%11100000 ;NO EXPANSION
220 PAGE1 =%10000000 ;CARTRIDGE OVERLAY 1 ($8000-$BFFF)
230 PAGE2 =%10000001 ;CARTRIDGE OVERLAY 2 ($8000-$BFFF)
240 PAGE3 =%10000010 ;CARTRIDGE OVERLAY 3 ($8000-$BFFF)
250 PAGE4 =%10000011 ;CARTRIDGE OVERLAY 4 ($8000-$BFFF)
260 PAGE5 =%10000100 ;CARTRIDGE OVERLAY 5 ($8000-$BFFF)
270 PAGE6 =%10000101 ;CARTRIDGE OVERLAY 6 ($8000-$BFFF)
280 ;
290 PAGEA =PAGE2 ;COMAL PAGE A
300 PAGEB =PAGE3 ;COMAL PAGE B
310 PAGEC =PAGE1 ;COMAL PAGE C
320 ;
330 ;
340 ;
350 ; PAGE ZERO VARIABLES:
360 ; ====================
370 ;
380 *=$0000
390 ;
400 D6510 *=*+1 ;6510 ON-CHIP DATA-DIRECTION REGISTER
410 R6510 *=*+1 ;6510 ON-CHIP 6-BIT I/O/MAP-REGISTER:
420 LORAM =%00000001 ; CONTROL FOR RAM/ROM AT $A000-$BFFF (BASIC)
430 HIRAM =%00000010 ; CONTROL FOR RAM/ROM AT $E000-$FFFF (KERNAL)
440 CHAREN =%00000100 ; CONTROL FOR I/O/ROM AT $D000-$DFFF
450 NORM =%00110111 ; COMAL MEMORY MAP
460 ;
470 PRPROC *=*+3 ;CHAIN OF LOCAL NAMES (PREPASS)
480 INTEGR *=*+1 ;FP WORK
490 ;
500 ; MEMORY MAP CONTROL
510 ;
520 PAGE *=*+1 ;CURRENT MEMORY MAP
530 CM8096 =PAGE
540 MEMMAP =PAGE
550 PAGEPT *=*+2 ;POINTER USED BY LOAD/STORE/EXEC
560 PAGEX *=*+1 ;OVERLAY FOR LOAD/STORE/EXEC ROUTINES
570 PAGEY *=*+1 ;OVERLAY USED FOR CONTROL OF JUMP TABLE
580 P6510 *=*+1 ;OLD C64-OVERLAY FOR CONTROL OF JUMP TABLE
590 RESOL *=*+1 ;GRAPHICS RESOLUTION
600 GCOLH *=*+1 ;GRAPHICS PENCOLOR*16
610 ;
620 ; COMAL VARIABLES
630 ;
640 LOCLPT *=*+2 ;CHAIN OF OLD VARIABLE DESCRIPTIONS
650 FORPT *=*+2 ;STACK ENTRY CHAIN
660 SCTYPE *=*+1 ;TYPE OF SYMBOL FROM SCANNER
670 TANSGN *=*+1 ;TAN SIGN / COMPARISON EVALUATION FLAG
680 CODE *=*+1 ;USED TO HOLD A GENERATED CODE
690 CPNT *=*+1 ;POINTER TO CODE BUFFER, CDBUF
700 CLIMIT =255 ;LIMIT OF CPNT
710 SPROG *=*+2 ;PNT TO START OF PROGRAM
720 SVARS *=*+2 ;PNT TO START OF VARIABLE TABLE
730 SSTACK *=*+2 ;PNT TO START OF STACK
740 SMAX *=*+2 ;PNT TO TOP OF MEMORY
750 EXINF *=*+1 ;INF FOR RESULT EXPRESSION FROM EXPR
760 SCERR =$01
770 SCLNO =$08 ;SET, IF NUMBER CAN BE A LINE NUMBER
780 LNLEN *=*+1 ;LENGTH OF LINE TO BE EXECUTED
790 NPNT *=*+1 ;POINTER TO NAME
800 TPNT *=*+1 ;POINTER TO STRING
810 TLIMIT =80
820 ;
830 INDEX1 *=*+2 ;UTILITY POINTER
840 INDEX2 *=*+2 ;UTILITY POINTER
850 INDEX =INDEX1
860 ;
870 RESM1 *=*+1 ;PRODUCT AREA FOR MULTIPLICATION
880 RESM2 *=*+1
890 RESM3 *=*+1
900 RESM4 *=*+1
910 RESM5 *=*+1
920 ;
930 MULT1 =RESM1 ;FIRST OPERAND (MULT)
940 MULT2 =RESM3 ;SECOND OPERAND (MULT)
950 ;
960 DATAPT *=*+2 ;CURRENT DATA POINTER
970 STOS *=*+2 ;PNT TO TOP OF STACK
980 SFREE *=*+2 ;PNT TO FREE AREA OF VAR.RES
990 PRGPNT *=*+2 ;PNT TO START OF LINE
1000 CODPNT *=*+1 ;PNT TO CODE DURING EXECUTION
1010 SCLSD1 *=*+2 ;OLD SFREE (CLOSED)
1020 SCLSD2 *=*+2 ;OLD STOS (CLOSED)
1030 INF1 *=*+1
1040 INF2 *=*+1 ;USED FOR OPERAND CHECKING
1050 INF3 *=*+1
1060 Q1 *=*+2 ;SHORT SPAN WORK AREAS
1070 Q2 *=*+2
1080 Q3 *=*+2
1090 Q4 *=*+2
1100 Q5 *=*+2
1110 COPY1 *=*+2 ;WORK FOR COPY FROM
1120 COPY2 *=*+2 ; TO
1130 FDECPT =COPY2 ;CURRENT VARIABLE ADDRESS (DEC POINTER)
1140 COPY3 *=*+2 ; LENGTH
1150 BUS *=*+1 ;BUS=0 BUS IDLE; BUS<>0 BUS ACTIVE
1160 STINF *=*+1 ;INFORMATION FOR STATEMENT
1170 CMND =$01 ; NO LINE NUMBER
1180 TWOST =$02 ; ANOTHER STATEMENT FOLLOWS
1190 WHLDO =$04 ; AFTER WHILE ... DO
1200 FORDO =$08 ; AFTER FOR ... DO
1210 COMMNT =$10 ; STATEMENT ENDED BY COMMENT
1220 IFTHEN =$20 ; AFTER IF ... THEN
1230 REPUNT =$40 ; AFTER REPEAT ... UNTIL
1240 ;
1250 EXCINF *=*+1 ;EXECUTION INFORMATION:
1260 ESCTRP =$02 ; ESCAPE IS TRAPPED (STOP)
1270 SRQ =$04 ; MAKE CALL OF COMAL INTERRUPT HANDLER.
1280 ESCMET =$08 ; ESCAPE MET (STOP)
1290 SRQON =$10 ; SRQ ENABLED
1300 USRQON =$20 ; USER REQUEST ENABLED
1310 SFTSRQ =$80 ; SOFTWARE SRQ ONLY
1320 ;
1330 ; VARIABLES FOR FLOATING POINT PACKAGES
1340 ;
1350 TEMPF3 *=*+6 ;MISC. FP WORK AREA
1360 ESCAPE *=*+1 ;STOP KEY FLAG
1370 *=*+1 ;NOT USED
1380 OLDOV *=*+1 ;OLD OVERFLOW (ROUNDING)
1390 TEMPF1 *=*+5 ;MISC. FP WORK AREA (5 BYTES)
1400 TEMPF2 *=*+5 ;MISC. FP WORK AREA (5 BYTES)
1410 DECCNT =TEMPF2+1
1420 TENEXP =TEMPF2+2
1430 ;
1440 AC1 *=*+6 ;ACCUM#1:
1450 AC1E =AC1+0 ; EXPONENT
1460 AC1M1 =AC1+1 ; MANTISSA 1
1470 AC1M2 =AC1+2 ; MANTISSA 2
1480 AC1M3 =AC1+3 ; MANTISSA 3
1490 AC1M4 =AC1+4 ; MANTISSA 4
1500 AC1S =AC1+5 ; SIGN
1510 ;
1520 DEGREE *=*+1 ;SERIES EVALUATION CONSTANT POINTER
1530 BITS *=*+1 ;ACCUM#1 HI-ORDER (OVERFLOW)
1540 ;
1550 AC2 *=*+6 ;ACCUM#2
1560 AC2E =AC2+0 ; EXPONENT
1570 AC2M1 =AC2+1 ; MANTISSA 1
1580 AC2M2 =AC2+2 ; MANTISSA 2
1590 AC2M3 =AC2+3 ; MANTISSA 3
1600 AC2M4 =AC2+4 ; MANTISSA 4
1610 AC2S =AC2+5 ; SIGN
1620 ;
1630 ARISGN *=*+1 ;SIGN COMPARISON, ACC#1 VS ACC#2
1640 FACOV *=*+1 ;ACCUM#1 LO-ORDER (ROUNDING)
1650 POLYPT *=*+2 ;POINTER TO POLYNOM.
1660 FBUFPT =POLYPT
1670 ;
1680 ; MORE COMAL VARIABLES
1690 ;
1700 ASAVE *=*+1 ;SAVE FOR .A (CALL/GOTO)
1710 XSAVE *=*+1 ;SAVE FOR .X (CALL/GOTO)
1720 PSAVE *=*+1 ;SAVE FOR .P (CALL/GOTO)
1730 INDPNT *=*+1 ;POINTER TO LAST CODE WHERE AN ADDRESS WAS LOADED
1740 SCFLAG *=*+1 ;FLAGS IN SCANNER:
1750 LNNO *=*+2 ;LINE NUMBER
1760 MOVEAD *=*+2 ;ADDRESS FOR MOVE
1770 TXTLO *=*+1 ;ADDRESS OF TEXT FOR PRTXT
1780 TXTHI *=*+1
1790 XX *=*+2 ;CURRENT X (GRAPHICS)
1800 YY *=*+2 ;CURRENT Y (GRAPHICS)
1810 GRWK1 *=*+2
1820 GRWK2 *=*+2
1830 GRWK3 *=*+2
1840 EXCFLG *=*+1 ;FLAGS:
1850 NWNAME =$01 ; NEW NAME HAS BEEN INSERTED
1860 NWLINE =$02 ; NEW LINE HAS BEEN INSERTED
1870 CHARPT *=*+1 ; PNT TO INBUF
1880 CHAR *=*+1 ; CHAR FROM INCHAR
1890 RNDX *=*+5 ; RANDOM NUMBER SEED
1900 ;
1910 ; VARIABLES FOR I/O
1920 ;
1930 STATUS *=*+1 ;I/O OPERATION STATUS
1940 STKEY *=*+1 ;STOP KEY FLAG
1950 SVXT *=*+1 ;TEMPORARY
1960 VERCK *=*+1 ;LOAD OR VERIFY FLAG
1970 C3P0 *=*+1 ;IEEE BUFFERED CHAR FLAG
1980 BSOUR *=*+1 ;CHAR BUFFER FOR IEEE
1990 SYNO *=*+1 ;CASSETTE SYNC #
2000 XSAV *=*+1 ;TEMP FOR BASIN
2010 LDTND *=*+1 ;HOW MANY FILES OPEN
2020 DFLTN *=*+1 ;DEFAULT INPUT DEVICE #
2030 DFLTO *=*+1 ;DEFAULT OUTPUT DEVICE #
2040 PRTY *=*+1 ;CASSETTE PARITY
2050 T3 =PRTY
2060 DPSW *=*+1 ;CASSETTE DIPOLE SWITCH
2070 MSGFLG *=*+1 ;OS MESSAGE FLAG
2080 PTR1 *=*+1 ;CASSETTE ERROR PASS 1
2090 T1 =PTR1 ;TEMPORARY 1
2100 PTR2 *=*+1 ;CASSETTE ERROR PASS 2
2110 TMPC =PTR2
2120 T2 =PTR2 ;TEMPORARY 2
2130 TIME *=*+3 ;24 HOUR CLOCK IN 1/60 SEC.
2140 R2D2 =* ;SERIAL BUS USAGE
2150 PCNTR *=*+1 ;CASSETTE STUFF
2160 BSOUR1 =* ;TEMP USED BY SERIAL ROUTINE
2170 FIRT *=*+1
2180 COUNT =* ;TEMP USED BY SERIAL ROUTINE
2190 CNTDN *=*+1 ;CASSETTE SYNC COUNTDOWN
2200 BUFPT *=*+1 ;TAPE BUFFER POINTER
2210 SHCNL =* ;CASSETTE SHORT COUNT
2220 INBIT *=*+1 ;RS232 RCVR INPUT BIT STORAGE
2230 RER =* ;CASSETTE READ ERROR
2240 BITCI *=*+1 ;RS232 RCVR BIT COUNT IN
2250 REZ =* ;CASSETTE READING ZEROES
2260 RINONE *=*+1 ;RS232 RCVR FLAG FOR START BIT CHECK
2270 RDFLG =* ;CASSETTE READ MODE
2280 RIDATA *=*+1 ;RS232 RCVR BYTE BUFFER
2290 RIPRTY *=*+1 ;RS232 RCVR PARITY STORAGE
2300 SHCNH =RIPRTY ;CASSETTE SHORT COUNT
2310 SAL *=*+1 ;POINTER TAPE BUFFER/SCREEN SCROLLING
2320 SAH *=*+1
2330 EAL *=*+1
2340 EAH *=*+1
2350 CMP0 *=*+1 ;TAPE TIMING CONSTANT
2360 TEMP *=*+1 ;TAPE TIMING CONSTANT
2370 TAPE1 *=*+2 ;START OF TAPE BUFFER
2380 ;
2390 SNSW1 =* ;CASSETTE STUFF
2400 BITTS *=*+1 ;RS232 TRNS BIT COUNT
2410 NXTBIT *=*+1 ;RS232 TRNS NEXT BIT TO BE SENT
2420 DIFF =NXTBIT ;EOT RECEIVED FROM TAPE
2430 PRP =*
2440 RODATA *=*+1 ;RS232 TRNS BYTE BUFFER
2450 FNLEN *=*+1 ;LENGTH OF CURRENT FILE NAME
2460 LA *=*+1 ;CURRENT FILE LOGICAL ADDRESS
2470 SA *=*+1 ;CURRENT FILE SECONDARY ADDRESS
2480 FA *=*+1 ;CURRENT FILE PRIMARY ADDRESS
2490 FILADR *=*+2 ;CURRENT FILE NAME ADDRESS
2500 OCHAR =*
2510 ROPRTY *=*+1 ;RS232 TRNS PARITY BUFFER
2520 FSBLK *=*+1 ;CASSETTE READ BLOCK COUNT
2530 MYCH *=*+1 ;SERIAL WORD BUFFER
2540 CAS1 *=*+1 ;CASSETTE MANUAL/CONTROLLED SWITCH
2550 STAL *=*+1 ;TAPE START ADDRESS
2560 STAH *=*+1
2570 TMP2 =*
2580 MEMUSS *=*+2 ;TAPE LOAD TEMPS
2590 ;
2600 ; VARIABLES FOR SCREEN EDITOR
2610 ;
2620 LSTX *=*+1 ;KEY SCAN INDEX
2630 NEWKEY =LSTX
2640 NDX *=*+1 ;KEY BUFFER POINTER
2650 RVS *=*+1 ;REVERSE FIELD ON FLAG
2660 INDX *=*+1 ;BYTE POINTER TO END OF LINE FOR INPUT
2670 LSXP *=*+1 ;START OF SCREEN INPUT (ROW)
2680 LSTP *=*+1 ;START OF SCREEN INPUT (COLUMN)
2690 SFDX *=*+1 ;SHIFT MODE ON PRINT
2700 BLNSW *=*+1 ;CURSOR BLINK ENABLE
2710 BLNCT *=*+1 ;COUNTER TO FLIP CURSOR
2720 GDBLN *=*+1 ;OLD CHAR BEFORE BLINK
2730 BLNON *=*+1 ;ON/OFF BLINK FLAG
2740 CRSW *=*+1 ;INPUT/GET FLAG
2750 PNT *=*+2 ;POINTER TO START OF LINE WHERE
2760 CURLIN =PNT ;CURSOR IS FLASHING.
2770 PNTR *=*+1 ;COLUMN POSITION WHERE CURSOR
2780 COLPOS =PNTR ;IS FLASHING.
2790 QTSW *=*+1 ;FLAG FOR QUOTE MODE
2800 QUOTE =QTSW
2810 LNMX *=*+1 ;CURRENT SCREEN LINE LENGTH (39/79)
2820 TBLX *=*+1 ;LINE NUMBER WHERE CURSOR IS FLASHING
2830 ROWPOS =TBLX
2840 DATA *=*+1 ;TEMP DATA AREA
2850 INSRT *=*+1 ;NUMBER OF INSERT KEYS PUSHED TO (null)
2860 WRPTB *=*+26 ;LINE FLAGS+ENDSPACE
2870 LDTB1 =WRPTB
2880 USER *=*+2 ;SCREEN EDITOR COLOR POINTER
2890 KEYTAB *=*+2 ;KEYBOARD DECODE TABLE
2900 ;
2910 RIBUF *=*+2 ;RS232 INPUT BUFFER ADDRESS
2920 ROBUF *=*+2 ;RS232 OUTPUT BUFFER ADDRESS
2930 FREKZP *=*+5 ;FREE KERNAL Z-PAGE SPACE
2940 ;
2950 ; END OF PAGE ZERO
2960 ;
2970 STACK *=*+256 ;SYSTEM STACK
2980 FBUFFR =STACK ;FPASC WORK AREA (15 BYTES)
2990 BAD =STACK ;TAPE INPUT ERROR LOG
3000 ;
3010 ;
3020 ERTLEN *=*+1 ;LENGTH OF ERTEXT
3030 MAXERT =79 ;MAX. LENGTH OF ERTEXT
3040 ERTEXT *=*+MAXERT ;BUFFER TO HOLD ERROR MESSAGE
3050 ;
3060 ;
3070 ; STORAGE FOR CON COMMAND:
3080 ;
3090 CONPNT *=*+2 ;OLD PRGPNT
3100 CONFLG *=*+1 ;OLD EXCINF
3110 CONCOD *=*+1 ;OLD CODPNT
3120 CONFOR *=*+2 ;OLD FORPT
3130 ;
3140 FPWORK *=*+1
3150 EXTROM *=*+1 ;EXTERNAL ROM FLAG (0=NO, 'I'=YES)
3160 IEEEIN *=*+1 ;IEEE INSTALLED (0=NO, 'I'=YES)
3170 ;
3180 LAT *=*+10 ;TABLE OF LA'S
3190 FAT *=*+10 ;TABLE OF FA'S
3200 SAT *=*+10 ;TABLE OF SA'S
3210 KEYBUF *=*+10 ;KEYBOARD BUFFER QUEUE (FIFO)
3220 ;
3230 MEMSTR *=*+2 ;START OF MEMORY
3240 MEMSIZ *=*+2 ;TOP OF MEMORY
3250 TIMOUT *=*+1 ;IEEE TIME OUT DEFEAT
3260 ;
3270 ; SCREEN EDITOR STORAGE
3280 ;
3290 COLOR *=*+1 ;ACTIVE COLOR NYBBLE
3300 GDCOL *=*+1 ;ORIGINAL COLOR UNDER CURSOR
3310 HIBASE *=*+1 ;BAS LOCATION OF SCREEN
3320 KBFLIM *=*+1 ;SIZE OF KEYBOARD BUFFER
3330 RPTFLG *=*+1 ;KEY REPEAT FLAG
3340 RPTCNT *=*+1 ;REPEAT SPEED COUNTER
3350 DELAY *=*+1 ;REPEAT DELAY COUNTER
3360 SHFLAG *=*+1 ;KEYBOARD SHIFT KEY/CTRL KEY/C= KEY
3370 LSTSHF *=*+1 ;LAST KEYBOARD SHIFT PATTERN
3380 KEYLOG *=*+2 ;VECTOR KEYBOARD TABLE SETUP
3390 SHMODE *=*+1 ;0=PET MODE, 1=CATTACANNA
3400 AUTODN *=*+1 ;AUTO SCROLL DOWN, 0=ON
3410 ;
3420 ; RS232 STORAGE
3430 ;
3440 M51CTR *=*+1 ;6551 CONTROL REGISTER IMAGE
3450 M51CDR *=*+1 ;6551 COMMAND REGISTER IMAGE
3460 M51AJB *=*+2 ;NON-STANDARD BPS (TIME/2-100) USA
3470 RSSTAT *=*+1 ;6551 STATUS REGISTER
3480 BITNUM *=*+1 ;NUMBER OF BITS LEFT TO SEND
3490 BAUDOF *=*+2 ;BAUD RATE FULL BIT TIME (MICROSEC)
3500 RIDBE *=*+1 ;INDEX TO END OF INPUT BUFFER
3510 RIDBS *=*+1 ;START OF INPUT BUFFER (PAGE)
3520 RODBS *=*+1 ;START OF OUTPUT BUFFER (PAGE)
3530 RODBE *=*+1 ;INDEX TO END OF OUTPUT BUFFER
3540 ;
3550 IRQTMP *=*+2 ;HOLDS IRQ-VECTOR DURING TAPE I/O
3560 ;
3570 ; TEMP SPACE FOR C64 VARIABLES
3580 ;
3590 ENABL *=*+1 ;RS232 ENABLES
3600 CASTON *=*+1 ;TOD SENSE DURING CASSETTE I/O
3610 KIKA26 *=*+1 ;TEMP STORAGE FOR CASSETTE READ
3620 STUPID *=*+1 ;TEMP D1IRQ INDICATOR FOR CASSETTE READ
3630 LINTMP *=*+1 ;TEMP FOR LINE INDEX
3640 PALNTS *=*+1 ;FLAG 0=NTSC, 1=PAL
3650 ;
3660 FNMAX =55
3670 FILNAM *=*+FNMAX ;USED FOR STORAGE OF FILE NAME
3680 TBUFF =FILNAM ;USED FOR STORAGE OF DISC COMMAND
3690 RANGNO *=*+1 ;LINE # RANGE POINTER
3700 RANGPT *=*+1 ;LINE # RANGE POINTER
3710 RANGMX =32
3720 RANGES *=*+RANGMX ;LINE # RANGES
3730 IERROR *=*+2 ;VECTOR PRINT BASIC ERROR MESSAGE
3740 NUMBER =TEMPF3 ;FP WORK AREA (SYNTAX ANALYSIS)
3750 *=*+5 ;NOT USED
3760 NUM2 *=*+5 ;FP WORK AREA (PRINT USING)
3770 SAREG *=*+8 ;UNUSED
3780 ;
3790 ; KERNAL VECTORS
3800 ;
3810 CINV *=*+2 ;IRQ RAM VECTOR
3820 IRQVCT =CINV
3830 CBINV *=*+2 ;BRK INSTR RAM VECTOR
3840 BRKVCT =CBINV
3850 NMIVCT *=*+2 ;NMI RAM VECTOR
3860 IOPEN *=*+2 ;OPEN ROUTINE VECTOR
3870 ICLOSE *=*+2 ;CLOSE ROUTINE VECTOR
3880 ICHKIN *=*+2 ;CHKIN ROUTINE VECTOR
3890 ICKOUT *=*+2 ;CKOUT ROUTINE VECTOR
3900 ICLRCH *=*+2 ;CLRCHN ROUTINE VECTOR
3910 IBASIN *=*+2 ;CHRIN ROUTINE VECTOR
3920 IBSOUT *=*+2 ;CHROUT ROUTINE VECTOR
3930 ISTOP *=*+2 ;STOP ROUTINE VECTOR
3940 IGETIN *=*+2 ;GETIN ROUTINE VECTOR
3950 ICLALL *=*+2 ;CLALL ROUTINE VECTOR
3960 USRCMD *=*+2 ;FOR MACHINE LANGUAGE MONITOR
3970 ILOAD *=*+2 ;LOAD ROUTINE VECTOR
3980 ISAVE *=*+2 ;SAVE ROUTINE VECTOR
3990 *=*+8 ;UNUSED
4000 TBUFFR *=*+192 ;TAPE I/O BUFFER
4010 *=*+4 ;UNUSED
4020 SCSIZE =1000 ;SCREEN SIZE
4030 SCREEN *=*+SCSIZE ;SCREEN MEMORY AREA
4040 *=*+16 ;SCREEN MEMORY EXCESS
4050 SPRPNT *=*+8 ;SPRITE DATA POINTERS
4060 ;
4070 ;
4080 ; COMAL PROGRAM FOLLOWS HERE:
4090 ;
4100 MBEGIN *=*+4 ;START OF MEMORY
4110 MBEGN1 *=*+1 ;START OF NAME TABLE
4120 MBEGN2 *=*+1 ;START OF STACKS
4130 ;
4140 ;
4150 ;
4160 ; START HERE TO PUT BUFFERS, VARIABLES, AND JUMP TABLE
4170 ;
4180 *=$C000
4190 ;
4200 RSIBUF *=*+256 ;RS232 INPUT BUFFER
4210 RSOBUF *=*+256 ;RS232 OUTPUT BUFFER
4220 ;
4230 STDPCK *=*+1000 ;VARIABLES FOR STANDARD PACKAGES
4240 ;
4250 INLEN =121
4260 INBUF *=*+INLEN ;INPUT BUFFER
4270 CDBUF *=*+CLIMIT ;CODE BUFFER
4280 TXT *=*+TLIMIT ;STRING CONSTANT BUFFER
4290 TXT1 =TXT-1
4300 ;
4310 FLEVEL *=*+1 ;FOR/TRAP NESTING LEVEL DURING PREPASS
4320 Q6 *=*+2 ;TEMPORARY
4330 Q7 *=*+2 ;TEMPORARY
4340 Q8 *=*+2 ;TEMPORARY
4350 Q9 *=*+2 ;TEMPORARY
4360 *=*+3 ;UNUSED
4370 MOVELN =MULT1
4380 MOVETY =MULT2
4390 ;
4400 SPSAV *=*+1 ;SAVE OF .S DURING EXECUTION
4410 SCINF *=*+2 ;NAME POINTER
4420 ;
4430 PSTART =*
4440 ;
4450 AUTO1 *=*+2 ;CURRENT LINE NUMBER FOR AUTO
4460 AUTOST *=*+2 ;STEP FOR AUTO
4470 ;
4480 DSTART *=*+2 ;START OF DATA QUEUE
4490 ;
4500 TABSET *=*+1 ;VALUE OF LAST ZONE STATEMENT
4510 ALTPOS *=*+1 ;POSITION IN SELECT OUTPUT FILE
4520 INTRNO *=*+2 ;PROCEDURE GIVEN BY INTERRUPT STMT.
4530 ;
4540 PEND =*
4550 ;
4560 ERRPNT *=*+1 ;CHAR POS OF ERROR
4570 NORINT *=*+2 ;NORMAL INTERRUPT VECTOR
4580 SAFE *=*+1 ;SAFE STATUS
4590 MAINRV *=*+1 ;MAIN REVISION
4600 SUBRV *=*+1 ;SUB REVISION
4610 TESTRV *=*+1 ;TEST VERSION
4620 MSGLIN *=*+2 ;ADDRESS OF MESSAGE LINE
4630 UPPER2 *=*+1 ;COPY OF BORGE
4640 EXTPRC *=*+1 ;FLAG FOR LOADING OF EXTERNAL PROC/FUNC
4650 EXTCNT *=*+2 ;NESTING LEVEL OF EXTERNAL PROC/FUNC
4660 SSIZE *=*+1 ;40 COL./80 COL.
4670 LUNIT *=*+1 ;LAST DISC (STATUS)
4680 BORGE *=*+1 ;SPECIAL FLAGS FOR LISTING
4690 OPENFL *=*+1 ;FLAG USED BY COPEN
4700 DFUNLN *=*+1 ;LENGTH OF DEFAULT UNIT TEXT
4710 DFUNIT *=*+2 ;DEFAULT UNIT (POWER UP VALUE .BYTE '0')
4720 DEFOUT *=*+1 ;SELECT OUTPUT FLAG
4730 ;
4740 IOVECT =* ;VECTORS:
4750 TRAPVC *=*+2 ; PAGEB; ERROR HANDLER
4760 EXTNVC *=*+2 ; PAGEB; EXTERNAL LOAD
4770 USRQVC *=*+2 ; PAGEB; INTERRUPT FACILITY
4780 IERTXT *=*+3 ; ERROR MESSAGE DATA
4790 IGETLN *=*+2 ; PAGEA; INPUT COMMAND LINE
4800 ISAVEC *=*+2 ; PAGEC; SAVE ADDITIONAL INFO
4810 ILOADC *=*+2 ; PAGEC; LOAD ADDITIONAL INFO
4820 IFNKEY *=*+2 ; PAGEA; HANDLE FUNCTION KEYS
4830 ;
4840 LIBPT *=*+1 ;PTR TO PLACE FOR NEXT LIBRARY DESCRIPTION
4850 ;
4860 LIBLEN =10 ;NO. OF LIBRARY DESCRIPTIONS
4870 ;
4880 LIBLO *=*+LIBLEN
4890 LIBHI *=*+LIBLEN
4900 LIBPAG *=*+LIBLEN
4910 ;
4920 ;
4930 ; OPEN FILE MODES (COPEN & CFNAME):
4940 ;
4950 MREAD =1 ;READ
4960 MWRITE =2 ;WRITE
4970 MREL =4 ;RELATIVE (RANDOM)
4980 ;
4990 ; FILE ATTRIBUTES (COPEN):
5000 ;
5010 MDISK =8 ;DISK FILE
5020 MS =16 ;SECONDARY ADDRESS SELECTION
5030 ML =32 ;AUTO LINEFEED
5040 MT =64 ;TIME OUT
5050 MA =128 ;ASCII I/O
5060 ;
5070 ; FILE TYPES (CFNAME):
5080 ;
5090 TAPPND =8
5100 TPRG =16
5110 TSEQ =TPRG+TPRG
5120 TREL =TSEQ+TPRG
5130 TUSR =TREL+TPRG
5140 ;
5150 MODET *=*+10 ;OPEN MODE FOR FILES
5160 COUNTT *=*+10 ;TABLE OF BYTE COUNT FOR FILES
5170 STT *=*+10 ;STATUS FOR OPENED FILES
5180 RECOTL *=*+10 ;TABLE OF RECORD POS. FOR FILES
5190 RECOTH *=*+10
5200 ;
5210 PPAGE *=*+1 ;OVERLAY TO PEEK/POKE/SYS
5220 NOREST *=*+1 ;<>0 DISABLE STOP/RESTORE
5230 LOADIN *=*+1 ;<>0 LOADING COMAL PROGRAM
5240 UNITFL *=*+1 ;0 SIMP.DEV; 1 DRIVE; 2 CASSETTE
5250 MODE *=*+1 ;FILE MODE
5260 CSTAT *=*+1 ;STATUS OF COMAL PROGRAM
5270 ;
5280 ; 1. INPUT ANALYSIS FROM SCREEN
5290 ; 2. - - - FILE
5300 ; 3. PREPASSING
5310 ; 4. EXECUTING A COMMAND
5320 ; 5. EXECUTING PROGRAM
5330 ;
5340 LSTFLG *=*+1 ;BIT VECTOR FOR RCREAT:
5350 ;
5360 ININD =$01
5370 OUTIND =$02
5380 LSTCON =$04
5390 NOIND =$08
5400 LSTEXT =$10
5410 ;
5420 LPMODE *=*+1 ;DEFAULT PRINTER OPEN MODE
5430 LPSA *=*+1 ;DEFAULT PRINTER SECONDARY ADDRESS
5440 LPFA *=*+1 ;DEFAULT PRINTER UNIT
5450 ;
5460 RECDEL *=*+1 ;RECORD POSITIONING DELAY
5470 ENDADR *=*+2 ;TOP OF RAM
5480 HEADLN *=*+1 ;POWER ON MESSAGE FLAG
5490 ;
5500 KWTAB *=*+2 ;KEYWORD TABLE (PAGEA)
5510 ;
5520 DFBORD *=*+1 ;DEFAULT BORDER COLOR
5530 DFBACK *=*+1 ;DEFAULT BACKGROUND COLOR
5540 DFFORG *=*+1 ;DEFAULT FOREGROUND COLOR
5550 ACBORD *=*+1 ;ACTUAL TEXT BORDER
5560 ACBACK *=*+1 ;ACTUAL TEXT BACKGROUND
5570 ;
5580 KEYLEN *=*+16 ;LENGTHS OF FUNC.KEY DEF'S
5590 KLEN *=*+1 ;# OF CHARS LEFT OF DEF.
5600 KPNT *=*+2 ;PNT TO KEY DEF
5610 DEFINP *=*+1 ;SELECT INPUT FLAG
5620 HZ50 *=*+1 ;0=60 HZ, 1=50 HZ TOD
5630 ;
5640 *=*+17 ;RESERVED FOR FUTURE USE
5650 MTO =*
5660 ;
5670 ;
5680 ; SUBROUTINES TO USE IN ASSEMBLER
5690 ; CODED SUBROUTINES IN COMAL:
5700 ;
5710 COLD *=*+3 ;COLD START OF COMAL
5720 WARM *=*+3 ;WARM START OF COMAL
5730 CALL *=*+3 ;JSR TO ANOTHER PAGE.
5740 GOTO *=*+3 ;JMP TO ANOTHER PAGE.
5750 LOAD *=*+3 ;LOAD FROM PAGEX
5760 STORE *=*+3 ;STORE TO PAGEX
5770 EXEC *=*+3 ;JSR TO PAGEX
5780 ;
5790 LDAC1 *=*+3 ;LOAD AC1
5800 LDAC2 *=*+3 ;LOAD AC2
5810 FNDPAR *=*+3 ;FIND PARAMETER (ASM.CALLS)
5820 COPY *=*+9 ;COPY AREA TOWARDS LOWER ADDRESSES
5830 COPYDN *=*+9 ;COPY AREA TOWARDS HIGHER ADDRESSES
5840 FPADD *=*+3 ;LOAD AC2 AND ADD AC2 TO AC1
5850 FPADD2 *=*+9 ;ADD AC2 TO AC1
5860 FPAHF *=*+9 ;ADD 0.5 TO AC1
5870 FPSUB *=*+3 ;LOAD AC2 AND SUB AC2 FROM AC1
5880 FPSUB2 *=*+9 ;SUB AC2 FROM AC1
5890 FPMUL *=*+3 ;LOAD AC2 AND MUL AC2 BY AC1
5900 FPMUL2 *=*+9 ;MUL AC2 BY AC1
5910 FPDIV *=*+3 ;LOAD AC2 AND DIV AC2 BY AC1
5920 FPDIV2 *=*+9 ;DIV AC2 BY AC1
5930 MUL10 *=*+9 ;MULTIPLY AC1 BY 10.0
5940 DIV10 *=*+9 ;DIVIDE AC1 BY 10.0
5950 STAC1 *=*+3 ;STORE AC1
5960 C1T2 *=*+9 ;COPY AC1 TO AC2
5970 C2T1 *=*+9 ;COPY AC2 TO AC1
5980 FPNEG *=*+9 ;NEGATE AC1
5990 FPSGN *=*+9 ;SIGN OF AC1
6000 FPSIN *=*+9 ;SINE OF AC1
6010 FPCOS *=*+9 ;COSINE OF AC1
6020 FPSQR *=*+9 ;SQUARE ROOT OF AC1
6030 FPTAN *=*+9 ;TANGENT OF AC1
6040 FPPOW *=*+9 ;RAISE AC2 TO THE POWER OF AC1
6050 FPATN *=*+9 ;ARCTANGENT OF AC1
6060 FPEXP *=*+9 ;RAISE AC1 TO THE POWER OF E
6070 FPLOG *=*+9 ;LOGARITHM BASE E OF AC1
6080 FPRND *=*+9 ;COMPUTE PSEUDO-RANDOM NUMBER (RANGE 0 TO 1)
6090 FPCOM *=*+9 ;COMPARE NUMBER TO AC1
6100 TRUNC *=*+9 ;CONVERT AC1 INTO INTEGER (-32768 .. 32767)
6110 FPINT =TRUNC
6120 FPINTG *=*+9 ;CONVERT AC1 INTO INTE000000004 .. 2^24-1)
6130 FPINTA *=*+9 ;CONVERT AC1 INTO INTEGER (0 .. 65535)
6140 INTFP *=*+9 ;CONVERT INTEGER INTO FP IN AC1
6150 FPASC *=*+9 ;CONVERT AC1 INTO ASCII EQUIVALENT (STR$)
6160 ;
6170 VAL *=*+6 ;CONVERT DECIMAL STRING INTO BINARY IN AC1
6180 POPA1 *=*+9 ;POP AC1
6190 POPA2 *=*+9 ;POP AC2
6200 PUSHA1 *=*+9 ;PUSH AC1
6210 PUSHRL *=*+9 ;PUSH REAL NUMBER
6220 PSHINT *=*+9 ;FLOAT & PUSH INTEGER (-32768 .. 32767)
6230 INTFPA *=*+9 ;FLOAT & PUSH INTEGER (0 .. 65535)
6240 ;
6250 EXCGST *=*+9 ;ALLOCATE LOCAL STORAGE
6260 EXCREM *=*+9 ;RECLAIM LOCAL STORAGE
6270 RESTOP *=*+9 ;ALLOCATE GLOBAL STORAGE
6280 RUNERR *=*+6 ;(null) TO COMAL ERROR HANDLER
6290 ;
6300 CRDT *=*+3 ;READ CHARACTER
6310 SPACE *=*+2 ;WRITE SPACE
6320 CWRT *=*+3 ;WRITE CHARACTER
6330 CCHKIN *=*+3 ;SELECT INPUT FILE
6340 CCKOUT *=*+3 ;SELECT OUTPUT FILE
6350 CCLRCH *=*+3 ;CLEAR CHANNEL
6360 CFNAME *=*+7 ;PARSE & COPY FILE NAME
6370 COPEN *=*+3 ;OPEN FILE
6380 CCLOSE *=*+3 ;CLOSE FILE
6390 CRLF *=*+3 ;OUTPUT CR AND LF
6400 GETLIN *=*+7 ;INPUT KEYBOARD LINE
6410 ;
6420 RESET *=*+6 ;RESET PROGRAM POINTERS
6430 DUMMY *=*+1 ;EMPTY SUBROUTINE (RTS)
6440 COMAL *=*+6 ;(null) TO COMAL EDITOR
6450 EXCUTE *=*+7 ;EXECUTE CODE IN CDBUF
6460 JLOAD *=*+7 ;LOAD COMAL PROGRAM
6470 ARRLEN *=*+7 ;COMPUTE NO. OF ELEMENTS IN ARRAY
6480 ;
6490 *=$D000
6500 ;
6510 ; 6566 VIDEO INTERFACE CONTROLLER
6520 ;
6530 VIC =*
6540 SPRPOS *=*+16 ;SPRITES 0-7 X & Y POS
6550 SPRXPS *=*+1 ;SPRITES 0-7 X-POS (MSB OF X-COORD.)
6560 VCTRL1 *=*+1 ;VIC CONTROL REGISTER
6570 RWRAST *=*+1 ;READ/WRITE RASTER VALUE FOR COMPARE IRQ
6580 PENX *=*+1 ;LIGHT-PEN LATCH X-POS
6590 PENY *=*+1 ;LIGHT-PEN LATCH Y-POS
6600 SPRDSP *=*+1 ;SPRITE DISPLAY ENABLE
6610 VCTRL2 *=*+1 ;VIC CONTROL REGISTER
6620 SPRYEX *=*+1 ;SPRITES 0-7 EXPAND 2*VERTICAL (Y)
6630 VCTRL3 *=*+1 ;VIC MEMORY CONTROL REGISTER
6640 IRQOCC *=*+1 ;VIC INTERRUPT FLAG REGISTER
6650 IRQMSK *=*+1 ;IRQ MASK REGISTER
6660 SPRBDP *=*+1 ;SPRITE TO BACKGROUND DISPLAY PRIORITY
6670 SPRMCM *=*+1 ;SPRITES 0-7 MULTI-COLOR MODE SELECT
6680 SPRXEX *=*+1 ;SPRITES 0-7 EXPAND 2*HORIZONTAL (X)
6690 SPRSPR *=*+1 ;SPRITE TO SPRITE COLLISION DETECT
6700 SPRBCK *=*+1 ;SPRITE TO BACKGROUND COLLISION DETECT
6710 BORCOL *=*+1 ;BORDER COLOR
6720 BCKCOL *=*+4 ;BACKGROUND COLOR 0-3
6730 SPRMCL *=*+2 ;SPRITE MULTI-COLOR REGISTER 0-1
6740 SPRCOL *=*+8 ;SPRITE 0-7 COLOR
6750 ;
6760 *=$D400
6770 ;
6780 ; 6581 SOUND INTERFACE DEVICE
6790 ;
6800 SID =* ;VOICE 1:
6810 V1FREQ *=*+2 ; FREQUENCY CONTROL
6820 V1PWW *=*+2 ; PULSE WAVEFORM WIDTH
6830 V1CTRL *=*+1 ; CONTROL REGISTER
6840 V1ENVL *=*+2 ; ENVELOPE GENERATOR (ADSR)
6850 ;VOICE 2:
6860 V2FREQ *=*+2 ; FREQUENCY CONTROL
6870 V2PWW *=*+2 ; PULSE WAVEFORM WIDTH
6880 V2CTRL *=*+1 ; CONTROL REGISTER
6890 V2ENVL *=*+2 ; ENVELOPE GENERATOR (ADSR)
6900 ;VOICE 3:
6910 V3FREQ *=*+2 ; FREQUENCY CONTROL
6920 V3PWW *=*+2 ; PULSE WAVEFORM WIDTH
6930 V3CTRL *=*+1 ; CONTROL REGISTER
6940 V3ENVL *=*+2 ; ENVELOPE GENERATOR (ADSR)
6950 ;FILTERS:
6960 FCUTOF *=*+2 ; FILTER CUTOFF FREQUENCY
6970 FRESON *=*+1 ; FILTER RESONANCE/VOICE INPUT CONTROL
6980 FMOVOL *=*+1 ; SELECT FILTER MODE AND VOLUME
6990 PADDL1 *=*+1 ;A/D-CONVERTER GAME PADDLE 1
7000 PADDL2 *=*+1 ;A/D-CONVERTER GAME PADDLE 2
7010 OSC *=*+1 ;OSCILLATOR 3 RANDOM NUMBER GENERATOR
7020 ENV *=*+1 ;ENVELOPE GENERATOR 3 OUTPUT
7030 *=$D500
7040 SIDIMG *=*+768 ;SID IMAGES
7050 COLRAM *=*+SCSIZE+24 ;COLOR RAM (NYBBLES)
7060 ;
7070 *=$DC00
7080 ;
7090 ; 6526 COMPLEX INTERFACE ADAPTER #1
7100 ;
7110 COLM =* ;KEYBOARD MATRIX
7120 D1PRA *=*+1
7130 ROWS =* ;KEYBOARD MATRIX
7140 D1PRB *=*+1
7150 D1DDRA *=*+1
7160 D1DDRB *=*+1
7170 D1T1L *=*+1
7180 D1T1H *=*+1
7190 D1T2L *=*+1
7200 D1T2H *=*+1
7210 D1TOD1 *=*+1
7220 D1TODS *=*+1
7230 D1TODM *=*+1
7240 D1TODH *=*+1
7250 D1SDR *=*+1
7260 D1ICR *=*+1
7270 D1CRA *=*+1
7280 D1CRB *=*+1
7290 ;
7300 *=$DD00
7310 ;
7320 ; 6526 COMPLEX INTERFACE ADAPTER #2
7330 ;
7340 D2PRA *=*+1
7350 D2PRB *=*+1
7360 D2DDRA *=*+1
7370 D2DDRB *=*+1
7380 D2T1L *=*+1
7390 D2T1H *=*+1
7400 D2T2L *=*+1
7410 D2T2H *=*+1
7420 D2TOD1 *=*+1
7430 D2TODS *=*+1
7440 D2TODM *=*+1
7450 D2TODH *=*+1
7460 D2SDR *=*+1
7470 S2ICR *=*+1
7480 D2CRA *=*+1
7490 D2CRB *=*+1
7500 ;
7510 *=$DE00
7520 ;
7530 OVRLAY *=*+256 ;OVERLAY CONTROL PORT
7540 ;
7550 ; KERNAL JUMP TABLE
7560 ;
7570 *=$FF81
7580 ;
7590 CINT *=*+3 ;INIT SCREEN EDITOR
7600 IOINIT *=*+3 ;INIT I/O
7610 RAMTAS *=*+3 ;INIT RAM
7620 RESTOR *=*+3 ;RESTORE DEFAULT I/O VECTORS
7630 VECTOR *=*+3 ;READ/SET VECTORED I/O
7640 SETMSG *=*+3 ;CONTROL KERNAL MESSAGES
7650 SECOND *=*+3 ;SEND SA AFTER LISTEN
7660 TKSA *=*+3 ;SEND SA AFTER TALK
7670 MEMTOP *=*+3 ;READ/SET TOP OF MEMORY
7680 MEMBOT *=*+3 ;READ/SET BOTTOM OF MEMORY
7690 SCNKEY *=*+3 ;SCAN KEYBOARD
7700 SETTMO *=*+3 ;SET TIMEOUT DEFEAT
7710 ACPTR *=*+3 ;INPUT BYTE FROM SERIAL PORT
7720 CIOUT *=*+3 ;OUTPUT BYTE TO SERIAL PORT
7730 UNTLK *=*+3 ;COMMAND DEVICE TO UNTALK
7740 UNLSN *=*+3 ;COMMAND DEVICE TO UNLISTEN
7750 LISTN *=*+3 ;COMMAND DEVICE TO LISTEN
7760 TALK *=*+3 ;COMMANDS DEVICE TO TALK
7770 RDSTAT *=*+3 ;READ I/O STATUS WORD
7780 SETLFS *=*+3 ;SET LOGICAL, FIRST, AND SECOND ADDR.
7790 SETNAM *=*+3 ;SET FILE NAME
7800 OPEN *=*+3 ;OPEN LOGICAL FILE
7810 CLOSE *=*+3 ;CLOSE LOGICAL FILE
7820 CHKIN *=*+3 ;OPEN CHANNEL FOR INPUT
7830 CHKOUT *=*+3 ;OPEN CHANNEL FOR OUTPUT
7840 CKOUT =CHKOUT
7850 CLRCHN *=*+3 ;CLOSE I/O CHANNELS
7860 CLRCH =CLRCHN
7870 CHRIN *=*+3 ;INPUT CHAR FROM CHANNEL
7880 RDT =CHRIN
7890 CHROUT *=*+3 ;OUTPUT CHAR TO CHANNEL
7900 WRT =CHROUT
7910 LOADF *=*+3 ;LOAD RAM FROM A DEVICE
7920 SAVEF *=*+3 ;SAVE RAM TO DEVICE
7930 SETTIM *=*+3 ;SET REAL TIME CLOCK
7940 RDTIM *=*+3 ;READ REAL TIME CLOCK
7950 STOP *=*+3 ;SCAN STOP KEY
7960 GET *=*+3 ;GET CHAR FROM KEYBOARD BUFFER
7970 CLALL *=*+3 ;CLOSE ALL CHANNELS AND FILES
7980 UDTIM *=*+3 ;INC. REAL TIME CLOCK
7990 SCREN *=*+3 ;RETURN ROW,COLUMN OF CURSOR
8000 PLOT *=*+3 ;READ/SET ROW,COLUMN FOR CURSOR
8010 IOBASE *=*+3 ;RETURNS BASE ADDRESS OF I/O DEVICES
8020 ;
8030 SKIP =$2C ;OPCODE FOR 'BIT <ABS>' (SKIP 2 BYTES)
8040 ;
8050 ;
8060 *=$FFFA
8070 ;
8080 CNMI *=*+2 ;NON-MASKABLE INTERRUPT VECTOR
8090 CRESET *=*+2 ;SYSTEM RESET VECTOR
8100 CIRQ *=*+2 ;INTERRUPT REQUEST VECTOR
8110 ;
8120 ;
8130 ;********************************************************
8140 ;
8150 ;
8160 ; FOR USE IN ASSEMBLER CODED SUBROUTINES IN COMAL:
8170 ;
8180 ; LABELS FOR PROC/FUNC DEFINITIONS
8190 ;
8200 CART =%10000000 ;10XRXPPP (IN CARTRIDGE AT $8000-$BFFF)
8210 C64 =%01000111 ;01XRXPPP (IN C64 AT $0900-$FFFF)
8220 ROMMED =%00010000
8230 ;
8240 DEFPAG =C64-LORAM
8250 ;
8260 PROC =112
8270 ENDPRC =126
8280 ;
8290 FUNC =227
8300 ENDFNC =126
8310 ;
8320 PARAM =114
8330 VALUE =PARAM+0
8340 REF =PARAM+3
8350 ARRAY =6
8360 ;
8370 REAL =0
8380 INT =1
8390 STR =2
8400 ;
8410 ;
8420 ; SIGNAL TYPES:
8430 ;
8440 POWER1 =0 ;POWER UP SEI (ONLY FOR ROMMED LIBRARIES)
8450 POWER2 =1 ;POWER UP CLI (ONLY FOR ROMMED LIBRARIES)
8460 LINK =2 ;AFTER LINK/LOAD-COMMAND (ONLY LIBRARY JUST LINKED)
8470 DSCRD =3 ;BEFORE DISCARD-COMMAND
8480 NEW =4 ;AFTER NEW-COMMAND OR BAD LOAD/RUN/CHAIN
8490 CLRTAB =5 ;AFTER NAME TABLE IS CLEARED
8500 RUN =6 ;BEFORE RUN/CHAIN
8510 WARM1 =7 ;WARM START SEI
8520 CON =8 ;BEFORE CONTINUATION (CON COMMAND)
8530 ERROR =9 ;AFTER ERROR MESSAGE PRINTED
8540 STOP1 =10 ;AFTER STOP/END
8550 BASIC =11 ;BEFORE LEAVING COMAL
8560 ;
8570 ;